package com.xbongbong.pro.dictionary.pojo;

import com.xbongbong.paas.toolbox.util.RegexUtil;
import lombok.Getter;
import lombok.Setter;

import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.util.List;

/**
 * @author haibin.zhang
 * @version v1.0
 * @date 2019/1/31 9:11
 * @since v1.0
 */
@Getter
@Setter
public class DictionaryPojo {
    /**
     * 唯一标识
     */
    private String value;
    /**
     * 名称
     */
    @NotNull(message = "名称不能为空")
    @Size(min = 1,max = 50,message = "名称长度在1到50")
    private String text;
    /**
     * 启用 1启用0不启用
     */
    private Integer enable;
    /**
     * 统计 1统计0不统计
     */
    private Integer addtionnalField;
    /**
     * 默认启用
     */
    private Boolean checked;
    /**
     *  当前单选对应的值需要关联的字段
     */
    private List<String> fieldMap;
    /**
     * 禁止编辑启用
     */
    private Integer disableEnable;
    /**
     * 特殊阶段标记
     */
    private Integer disableDel;
    /**
     * 禁止改名字
     */
    private Integer disableName;
    /**
     * 特殊字段的原本的名称，比如销售阶段的赢单，输单，取消
     */
    private String sourceName;
    /**
     * 机会输单原因必填字段
     */
    private List<String> requiredAttrList;
    /**
     * 是否填写，竞争对手改造新增出参
     */
    private List<String> showAttrList;

    transient Boolean script = false;

    public String getText() {
        if (this.script) {
            return text;
        }
        return RegexUtil.getVariableName(text);
    }
}
